#pragma once

#include "../USISlave.h"
#include "ExplorerForm.h"

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;


namespace USI {


	public ref class SettingsForm : public System::Windows::Forms::Form
	{
	private:
		USISlave ^_slave;
	public:
		SettingsForm(USISlave ^slave)
		{
			InitializeComponent();
			_slave = slave;

			checkSumBox->Checked = _slave->GetCRC();
			array<String ^> ^strs;

			strs = _slave->GetCriticalExts();
			impExtList->Items->AddRange(strs);
			strs = _slave->GetWarningExts();
			warnExtList->Items->AddRange(strs);
			strs = _slave->GetIgnoreExts();
			ignoreExtList->Items->AddRange(strs);

			strs = _slave->GetCriticalPaths();
			impPathList->Items->AddRange(strs);
			strs = _slave->GetWarningPaths();
			warnPathList->Items->AddRange(strs);
			strs = _slave->GetIgnorePaths();
			ignorePathList->Items->AddRange(strs);
		}

	protected:
		/// <summary>
		/// Clean up any resources being used.
		/// </summary>
		~SettingsForm()
		{
			if (components)
			{
				delete components;
			}
		}
	private: System::Windows::Forms::CheckBox^  checkSumBox;
	private: System::Windows::Forms::TableLayoutPanel^  tableLayoutPanel1;
	private: System::Windows::Forms::GroupBox^  groupBox1;
	private: System::Windows::Forms::GroupBox^  groupBox2;
	private: System::Windows::Forms::TableLayoutPanel^  tableLayoutPanel2;
	private: System::Windows::Forms::Panel^  panel3;
	private: System::Windows::Forms::Panel^  panel2;
	private: System::Windows::Forms::Panel^  panel1;
	private: System::Windows::Forms::TableLayoutPanel^  tableLayoutPanel3;
	private: System::Windows::Forms::Panel^  panel4;
	private: System::Windows::Forms::Panel^  panel5;
	private: System::Windows::Forms::Panel^  panel6;
	private: System::Windows::Forms::Button^  impExtDelButton;

	private: System::Windows::Forms::ListBox^  impExtList;
	private: System::Windows::Forms::Button^  impExtButton;




	private: System::Windows::Forms::TextBox^  impExtBox;
	private: System::Windows::Forms::Button^  ignoreExtDelButton;



	private: System::Windows::Forms::ListBox^  ignoreExtList;



	private: System::Windows::Forms::Button^  ignoreExtButton;


	private: System::Windows::Forms::TextBox^  ignoreExtBox;




	private: System::Windows::Forms::Label^  label1;
	private: System::Windows::Forms::Button^  warnExtDelButton;

	private: System::Windows::Forms::ListBox^  warnExtList;


	private: System::Windows::Forms::Button^  warnExtButton;


	private: System::Windows::Forms::TextBox^  warnExtBox;



	private: System::Windows::Forms::Label^  label3;
	private: System::Windows::Forms::Label^  label2;
	private: System::Windows::Forms::Button^  CancelButton;
	private: System::Windows::Forms::Button^  OkButton;


	private: System::Windows::Forms::Label^  label4;
	private: System::Windows::Forms::ListBox^  impPathList;



	private: System::Windows::Forms::TableLayoutPanel^  tableLayoutPanel4;
	private: System::Windows::Forms::Button^  impPathButton;


	private: System::Windows::Forms::Button^  impPathDelButton;

	private: System::Windows::Forms::TableLayoutPanel^  tableLayoutPanel6;
	private: System::Windows::Forms::Button^  ignorePathButton;

	private: System::Windows::Forms::Button^  ignorePathDelButton;

	private: System::Windows::Forms::Label^  label6;
	private: System::Windows::Forms::ListBox^  ignorePathList;

	private: System::Windows::Forms::TableLayoutPanel^  tableLayoutPanel5;
	private: System::Windows::Forms::Button^  warnPathButton;

	private: System::Windows::Forms::Button^  warnPathDelButton;

	private: System::Windows::Forms::Label^  label5;
	private: System::Windows::Forms::ListBox^  warnPathList;

	protected: 

	private:
		/// <summary>
		/// Required designer variable.
		/// </summary>
		System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		void InitializeComponent(void)
		{
			this->checkSumBox = (gcnew System::Windows::Forms::CheckBox());
			this->tableLayoutPanel1 = (gcnew System::Windows::Forms::TableLayoutPanel());
			this->groupBox1 = (gcnew System::Windows::Forms::GroupBox());
			this->tableLayoutPanel2 = (gcnew System::Windows::Forms::TableLayoutPanel());
			this->panel3 = (gcnew System::Windows::Forms::Panel());
			this->label3 = (gcnew System::Windows::Forms::Label());
			this->ignoreExtDelButton = (gcnew System::Windows::Forms::Button());
			this->ignoreExtList = (gcnew System::Windows::Forms::ListBox());
			this->ignoreExtButton = (gcnew System::Windows::Forms::Button());
			this->ignoreExtBox = (gcnew System::Windows::Forms::TextBox());
			this->panel2 = (gcnew System::Windows::Forms::Panel());
			this->label1 = (gcnew System::Windows::Forms::Label());
			this->impExtDelButton = (gcnew System::Windows::Forms::Button());
			this->impExtList = (gcnew System::Windows::Forms::ListBox());
			this->impExtButton = (gcnew System::Windows::Forms::Button());
			this->impExtBox = (gcnew System::Windows::Forms::TextBox());
			this->panel1 = (gcnew System::Windows::Forms::Panel());
			this->label2 = (gcnew System::Windows::Forms::Label());
			this->warnExtDelButton = (gcnew System::Windows::Forms::Button());
			this->warnExtList = (gcnew System::Windows::Forms::ListBox());
			this->warnExtButton = (gcnew System::Windows::Forms::Button());
			this->warnExtBox = (gcnew System::Windows::Forms::TextBox());
			this->groupBox2 = (gcnew System::Windows::Forms::GroupBox());
			this->tableLayoutPanel3 = (gcnew System::Windows::Forms::TableLayoutPanel());
			this->panel4 = (gcnew System::Windows::Forms::Panel());
			this->tableLayoutPanel6 = (gcnew System::Windows::Forms::TableLayoutPanel());
			this->ignorePathButton = (gcnew System::Windows::Forms::Button());
			this->ignorePathDelButton = (gcnew System::Windows::Forms::Button());
			this->label6 = (gcnew System::Windows::Forms::Label());
			this->ignorePathList = (gcnew System::Windows::Forms::ListBox());
			this->panel5 = (gcnew System::Windows::Forms::Panel());
			this->tableLayoutPanel4 = (gcnew System::Windows::Forms::TableLayoutPanel());
			this->impPathButton = (gcnew System::Windows::Forms::Button());
			this->impPathDelButton = (gcnew System::Windows::Forms::Button());
			this->label4 = (gcnew System::Windows::Forms::Label());
			this->impPathList = (gcnew System::Windows::Forms::ListBox());
			this->panel6 = (gcnew System::Windows::Forms::Panel());
			this->tableLayoutPanel5 = (gcnew System::Windows::Forms::TableLayoutPanel());
			this->warnPathButton = (gcnew System::Windows::Forms::Button());
			this->warnPathDelButton = (gcnew System::Windows::Forms::Button());
			this->label5 = (gcnew System::Windows::Forms::Label());
			this->warnPathList = (gcnew System::Windows::Forms::ListBox());
			this->CancelButton = (gcnew System::Windows::Forms::Button());
			this->OkButton = (gcnew System::Windows::Forms::Button());
			this->tableLayoutPanel1->SuspendLayout();
			this->groupBox1->SuspendLayout();
			this->tableLayoutPanel2->SuspendLayout();
			this->panel3->SuspendLayout();
			this->panel2->SuspendLayout();
			this->panel1->SuspendLayout();
			this->groupBox2->SuspendLayout();
			this->tableLayoutPanel3->SuspendLayout();
			this->panel4->SuspendLayout();
			this->tableLayoutPanel6->SuspendLayout();
			this->panel5->SuspendLayout();
			this->tableLayoutPanel4->SuspendLayout();
			this->panel6->SuspendLayout();
			this->tableLayoutPanel5->SuspendLayout();
			this->SuspendLayout();
			// 
			// checkSumBox
			// 
			this->checkSumBox->AutoSize = true;
			this->checkSumBox->Location = System::Drawing::Point(12, 12);
			this->checkSumBox->Name = L"checkSumBox";
			this->checkSumBox->Size = System::Drawing::Size(140, 17);
			this->checkSumBox->TabIndex = 0;
			this->checkSumBox->Text = L"Use check sum (CRC32)";
			this->checkSumBox->UseVisualStyleBackColor = true;
			// 
			// tableLayoutPanel1
			// 
			this->tableLayoutPanel1->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom) 
				| System::Windows::Forms::AnchorStyles::Left) 
				| System::Windows::Forms::AnchorStyles::Right));
			this->tableLayoutPanel1->ColumnCount = 1;
			this->tableLayoutPanel1->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Percent, 
				100)));
			this->tableLayoutPanel1->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Absolute, 
				20)));
			this->tableLayoutPanel1->Controls->Add(this->groupBox1, 0, 0);
			this->tableLayoutPanel1->Controls->Add(this->groupBox2, 0, 1);
			this->tableLayoutPanel1->Location = System::Drawing::Point(12, 35);
			this->tableLayoutPanel1->Name = L"tableLayoutPanel1";
			this->tableLayoutPanel1->RowCount = 2;
			this->tableLayoutPanel1->RowStyles->Add((gcnew System::Windows::Forms::RowStyle(System::Windows::Forms::SizeType::Percent, 50)));
			this->tableLayoutPanel1->RowStyles->Add((gcnew System::Windows::Forms::RowStyle(System::Windows::Forms::SizeType::Percent, 50)));
			this->tableLayoutPanel1->Size = System::Drawing::Size(554, 486);
			this->tableLayoutPanel1->TabIndex = 1;
			// 
			// groupBox1
			// 
			this->groupBox1->Controls->Add(this->tableLayoutPanel2);
			this->groupBox1->Dock = System::Windows::Forms::DockStyle::Fill;
			this->groupBox1->Location = System::Drawing::Point(3, 3);
			this->groupBox1->Name = L"groupBox1";
			this->groupBox1->Size = System::Drawing::Size(548, 237);
			this->groupBox1->TabIndex = 0;
			this->groupBox1->TabStop = false;
			this->groupBox1->Text = L"File extensions";
			// 
			// tableLayoutPanel2
			// 
			this->tableLayoutPanel2->ColumnCount = 3;
			this->tableLayoutPanel2->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Percent, 
				33.33333F)));
			this->tableLayoutPanel2->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Percent, 
				33.33333F)));
			this->tableLayoutPanel2->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Percent, 
				33.33333F)));
			this->tableLayoutPanel2->Controls->Add(this->panel3, 2, 0);
			this->tableLayoutPanel2->Controls->Add(this->panel2, 0, 0);
			this->tableLayoutPanel2->Controls->Add(this->panel1, 1, 0);
			this->tableLayoutPanel2->Dock = System::Windows::Forms::DockStyle::Fill;
			this->tableLayoutPanel2->Location = System::Drawing::Point(3, 16);
			this->tableLayoutPanel2->Name = L"tableLayoutPanel2";
			this->tableLayoutPanel2->RowCount = 1;
			this->tableLayoutPanel2->RowStyles->Add((gcnew System::Windows::Forms::RowStyle(System::Windows::Forms::SizeType::Percent, 100)));
			this->tableLayoutPanel2->RowStyles->Add((gcnew System::Windows::Forms::RowStyle(System::Windows::Forms::SizeType::Absolute, 218)));
			this->tableLayoutPanel2->Size = System::Drawing::Size(542, 218);
			this->tableLayoutPanel2->TabIndex = 0;
			// 
			// panel3
			// 
			this->panel3->Controls->Add(this->label3);
			this->panel3->Controls->Add(this->ignoreExtDelButton);
			this->panel3->Controls->Add(this->ignoreExtList);
			this->panel3->Controls->Add(this->ignoreExtButton);
			this->panel3->Controls->Add(this->ignoreExtBox);
			this->panel3->Dock = System::Windows::Forms::DockStyle::Fill;
			this->panel3->Location = System::Drawing::Point(363, 3);
			this->panel3->Name = L"panel3";
			this->panel3->Size = System::Drawing::Size(176, 212);
			this->panel3->TabIndex = 2;
			// 
			// label3
			// 
			this->label3->AutoSize = true;
			this->label3->Location = System::Drawing::Point(3, 27);
			this->label3->Name = L"label3";
			this->label3->Size = System::Drawing::Size(53, 13);
			this->label3->TabIndex = 9;
			this->label3->Text = L"Ignorable";
			// 
			// ignoreExtDelButton
			// 
			this->ignoreExtDelButton->Anchor = static_cast<System::Windows::Forms::AnchorStyles>(((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left) 
				| System::Windows::Forms::AnchorStyles::Right));
			this->ignoreExtDelButton->Location = System::Drawing::Point(4, 187);
			this->ignoreExtDelButton->Name = L"ignoreExtDelButton";
			this->ignoreExtDelButton->Size = System::Drawing::Size(168, 23);
			this->ignoreExtDelButton->TabIndex = 7;
			this->ignoreExtDelButton->Text = L"Delete";
			this->ignoreExtDelButton->UseVisualStyleBackColor = true;
			this->ignoreExtDelButton->Click += gcnew System::EventHandler(this, &SettingsForm::ignoreExtDelButton_Click);
			// 
			// ignoreExtList
			// 
			this->ignoreExtList->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom) 
				| System::Windows::Forms::AnchorStyles::Left) 
				| System::Windows::Forms::AnchorStyles::Right));
			this->ignoreExtList->FormattingEnabled = true;
			this->ignoreExtList->Location = System::Drawing::Point(4, 43);
			this->ignoreExtList->Name = L"ignoreExtList";
			this->ignoreExtList->SelectionMode = System::Windows::Forms::SelectionMode::MultiExtended;
			this->ignoreExtList->Size = System::Drawing::Size(168, 134);
			this->ignoreExtList->TabIndex = 6;
			// 
			// ignoreExtButton
			// 
			this->ignoreExtButton->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Right));
			this->ignoreExtButton->Location = System::Drawing::Point(145, 2);
			this->ignoreExtButton->Name = L"ignoreExtButton";
			this->ignoreExtButton->Size = System::Drawing::Size(27, 23);
			this->ignoreExtButton->TabIndex = 5;
			this->ignoreExtButton->Text = L"+";
			this->ignoreExtButton->UseVisualStyleBackColor = true;
			this->ignoreExtButton->Click += gcnew System::EventHandler(this, &SettingsForm::ignoreExtButton_Click);
			// 
			// ignoreExtBox
			// 
			this->ignoreExtBox->Anchor = static_cast<System::Windows::Forms::AnchorStyles>(((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Left) 
				| System::Windows::Forms::AnchorStyles::Right));
			this->ignoreExtBox->Location = System::Drawing::Point(4, 4);
			this->ignoreExtBox->Name = L"ignoreExtBox";
			this->ignoreExtBox->Size = System::Drawing::Size(135, 20);
			this->ignoreExtBox->TabIndex = 4;
			this->ignoreExtBox->KeyPress += gcnew System::Windows::Forms::KeyPressEventHandler(this, &SettingsForm::ignoreExtBox_KeyPress);
			// 
			// panel2
			// 
			this->panel2->Controls->Add(this->label1);
			this->panel2->Controls->Add(this->impExtDelButton);
			this->panel2->Controls->Add(this->impExtList);
			this->panel2->Controls->Add(this->impExtButton);
			this->panel2->Controls->Add(this->impExtBox);
			this->panel2->Dock = System::Windows::Forms::DockStyle::Fill;
			this->panel2->Location = System::Drawing::Point(3, 3);
			this->panel2->Name = L"panel2";
			this->panel2->Size = System::Drawing::Size(174, 212);
			this->panel2->TabIndex = 1;
			// 
			// label1
			// 
			this->label1->AutoSize = true;
			this->label1->Location = System::Drawing::Point(3, 26);
			this->label1->Name = L"label1";
			this->label1->Size = System::Drawing::Size(55, 13);
			this->label1->TabIndex = 4;
			this->label1->Text = L"Important";
			// 
			// impExtDelButton
			// 
			this->impExtDelButton->Anchor = static_cast<System::Windows::Forms::AnchorStyles>(((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left) 
				| System::Windows::Forms::AnchorStyles::Right));
			this->impExtDelButton->Location = System::Drawing::Point(3, 186);
			this->impExtDelButton->Name = L"impExtDelButton";
			this->impExtDelButton->Size = System::Drawing::Size(168, 23);
			this->impExtDelButton->TabIndex = 3;
			this->impExtDelButton->Text = L"Delete";
			this->impExtDelButton->UseVisualStyleBackColor = true;
			this->impExtDelButton->Click += gcnew System::EventHandler(this, &SettingsForm::impExtDelButton_Click);
			// 
			// impExtList
			// 
			this->impExtList->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom) 
				| System::Windows::Forms::AnchorStyles::Left) 
				| System::Windows::Forms::AnchorStyles::Right));
			this->impExtList->FormattingEnabled = true;
			this->impExtList->Location = System::Drawing::Point(3, 42);
			this->impExtList->Name = L"impExtList";
			this->impExtList->SelectionMode = System::Windows::Forms::SelectionMode::MultiExtended;
			this->impExtList->Size = System::Drawing::Size(168, 134);
			this->impExtList->TabIndex = 2;
			// 
			// impExtButton
			// 
			this->impExtButton->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Right));
			this->impExtButton->Location = System::Drawing::Point(144, 2);
			this->impExtButton->Name = L"impExtButton";
			this->impExtButton->Size = System::Drawing::Size(27, 23);
			this->impExtButton->TabIndex = 1;
			this->impExtButton->Text = L"+";
			this->impExtButton->UseVisualStyleBackColor = true;
			this->impExtButton->Click += gcnew System::EventHandler(this, &SettingsForm::impExtButton_Click);
			// 
			// impExtBox
			// 
			this->impExtBox->Anchor = static_cast<System::Windows::Forms::AnchorStyles>(((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Left) 
				| System::Windows::Forms::AnchorStyles::Right));
			this->impExtBox->Location = System::Drawing::Point(3, 3);
			this->impExtBox->Name = L"impExtBox";
			this->impExtBox->Size = System::Drawing::Size(135, 20);
			this->impExtBox->TabIndex = 0;
			this->impExtBox->KeyPress += gcnew System::Windows::Forms::KeyPressEventHandler(this, &SettingsForm::impExtBox_KeyPress);
			// 
			// panel1
			// 
			this->panel1->Controls->Add(this->label2);
			this->panel1->Controls->Add(this->warnExtDelButton);
			this->panel1->Controls->Add(this->warnExtList);
			this->panel1->Controls->Add(this->warnExtButton);
			this->panel1->Controls->Add(this->warnExtBox);
			this->panel1->Dock = System::Windows::Forms::DockStyle::Fill;
			this->panel1->Location = System::Drawing::Point(183, 3);
			this->panel1->Name = L"panel1";
			this->panel1->Size = System::Drawing::Size(174, 212);
			this->panel1->TabIndex = 0;
			// 
			// label2
			// 
			this->label2->AutoSize = true;
			this->label2->Location = System::Drawing::Point(3, 27);
			this->label2->Name = L"label2";
			this->label2->Size = System::Drawing::Size(56, 13);
			this->label2->TabIndex = 8;
			this->label2->Text = L"Suspicious";
			// 
			// warnExtDelButton
			// 
			this->warnExtDelButton->Anchor = static_cast<System::Windows::Forms::AnchorStyles>(((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left) 
				| System::Windows::Forms::AnchorStyles::Right));
			this->warnExtDelButton->Location = System::Drawing::Point(3, 187);
			this->warnExtDelButton->Name = L"warnExtDelButton";
			this->warnExtDelButton->Size = System::Drawing::Size(168, 23);
			this->warnExtDelButton->TabIndex = 7;
			this->warnExtDelButton->Text = L"Delete";
			this->warnExtDelButton->UseVisualStyleBackColor = true;
			this->warnExtDelButton->Click += gcnew System::EventHandler(this, &SettingsForm::warnExtDelButton_Click);
			// 
			// warnExtList
			// 
			this->warnExtList->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom) 
				| System::Windows::Forms::AnchorStyles::Left) 
				| System::Windows::Forms::AnchorStyles::Right));
			this->warnExtList->FormattingEnabled = true;
			this->warnExtList->Location = System::Drawing::Point(3, 43);
			this->warnExtList->Name = L"warnExtList";
			this->warnExtList->SelectionMode = System::Windows::Forms::SelectionMode::MultiExtended;
			this->warnExtList->Size = System::Drawing::Size(168, 134);
			this->warnExtList->TabIndex = 6;
			// 
			// warnExtButton
			// 
			this->warnExtButton->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Right));
			this->warnExtButton->Location = System::Drawing::Point(144, 2);
			this->warnExtButton->Name = L"warnExtButton";
			this->warnExtButton->Size = System::Drawing::Size(27, 23);
			this->warnExtButton->TabIndex = 5;
			this->warnExtButton->Text = L"+";
			this->warnExtButton->UseVisualStyleBackColor = true;
			this->warnExtButton->Click += gcnew System::EventHandler(this, &SettingsForm::warnExtButton_Click);
			// 
			// warnExtBox
			// 
			this->warnExtBox->Anchor = static_cast<System::Windows::Forms::AnchorStyles>(((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Left) 
				| System::Windows::Forms::AnchorStyles::Right));
			this->warnExtBox->Location = System::Drawing::Point(3, 4);
			this->warnExtBox->Name = L"warnExtBox";
			this->warnExtBox->Size = System::Drawing::Size(135, 20);
			this->warnExtBox->TabIndex = 4;
			this->warnExtBox->KeyPress += gcnew System::Windows::Forms::KeyPressEventHandler(this, &SettingsForm::warnExtBox_KeyPress);
			// 
			// groupBox2
			// 
			this->groupBox2->Controls->Add(this->tableLayoutPanel3);
			this->groupBox2->Dock = System::Windows::Forms::DockStyle::Fill;
			this->groupBox2->Location = System::Drawing::Point(3, 246);
			this->groupBox2->Name = L"groupBox2";
			this->groupBox2->Size = System::Drawing::Size(548, 237);
			this->groupBox2->TabIndex = 1;
			this->groupBox2->TabStop = false;
			this->groupBox2->Text = L"Paths";
			// 
			// tableLayoutPanel3
			// 
			this->tableLayoutPanel3->ColumnCount = 3;
			this->tableLayoutPanel3->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Percent, 
				33.33333F)));
			this->tableLayoutPanel3->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Percent, 
				33.33333F)));
			this->tableLayoutPanel3->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Percent, 
				33.33333F)));
			this->tableLayoutPanel3->Controls->Add(this->panel4, 2, 0);
			this->tableLayoutPanel3->Controls->Add(this->panel5, 0, 0);
			this->tableLayoutPanel3->Controls->Add(this->panel6, 1, 0);
			this->tableLayoutPanel3->Dock = System::Windows::Forms::DockStyle::Fill;
			this->tableLayoutPanel3->Location = System::Drawing::Point(3, 16);
			this->tableLayoutPanel3->Name = L"tableLayoutPanel3";
			this->tableLayoutPanel3->RowCount = 1;
			this->tableLayoutPanel3->RowStyles->Add((gcnew System::Windows::Forms::RowStyle(System::Windows::Forms::SizeType::Percent, 100)));
			this->tableLayoutPanel3->RowStyles->Add((gcnew System::Windows::Forms::RowStyle(System::Windows::Forms::SizeType::Absolute, 218)));
			this->tableLayoutPanel3->Size = System::Drawing::Size(542, 218);
			this->tableLayoutPanel3->TabIndex = 1;
			// 
			// panel4
			// 
			this->panel4->Controls->Add(this->tableLayoutPanel6);
			this->panel4->Controls->Add(this->label6);
			this->panel4->Controls->Add(this->ignorePathList);
			this->panel4->Dock = System::Windows::Forms::DockStyle::Fill;
			this->panel4->Location = System::Drawing::Point(363, 3);
			this->panel4->Name = L"panel4";
			this->panel4->Size = System::Drawing::Size(176, 212);
			this->panel4->TabIndex = 2;
			// 
			// tableLayoutPanel6
			// 
			this->tableLayoutPanel6->Anchor = static_cast<System::Windows::Forms::AnchorStyles>(((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left) 
				| System::Windows::Forms::AnchorStyles::Right));
			this->tableLayoutPanel6->ColumnCount = 2;
			this->tableLayoutPanel6->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Percent, 
				50)));
			this->tableLayoutPanel6->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Percent, 
				50)));
			this->tableLayoutPanel6->Controls->Add(this->ignorePathButton, 1, 0);
			this->tableLayoutPanel6->Controls->Add(this->ignorePathDelButton, 0, 0);
			this->tableLayoutPanel6->Location = System::Drawing::Point(4, 180);
			this->tableLayoutPanel6->Name = L"tableLayoutPanel6";
			this->tableLayoutPanel6->RowCount = 1;
			this->tableLayoutPanel6->RowStyles->Add((gcnew System::Windows::Forms::RowStyle(System::Windows::Forms::SizeType::Percent, 100)));
			this->tableLayoutPanel6->RowStyles->Add((gcnew System::Windows::Forms::RowStyle(System::Windows::Forms::SizeType::Absolute, 31)));
			this->tableLayoutPanel6->Size = System::Drawing::Size(168, 31);
			this->tableLayoutPanel6->TabIndex = 11;
			// 
			// ignorePathButton
			// 
			this->ignorePathButton->Dock = System::Windows::Forms::DockStyle::Fill;
			this->ignorePathButton->Location = System::Drawing::Point(87, 3);
			this->ignorePathButton->Name = L"ignorePathButton";
			this->ignorePathButton->Size = System::Drawing::Size(78, 25);
			this->ignorePathButton->TabIndex = 1;
			this->ignorePathButton->Text = L"Add";
			this->ignorePathButton->UseVisualStyleBackColor = true;
			this->ignorePathButton->Click += gcnew System::EventHandler(this, &SettingsForm::ignorePathButton_Click);
			// 
			// ignorePathDelButton
			// 
			this->ignorePathDelButton->Dock = System::Windows::Forms::DockStyle::Fill;
			this->ignorePathDelButton->Location = System::Drawing::Point(3, 3);
			this->ignorePathDelButton->Name = L"ignorePathDelButton";
			this->ignorePathDelButton->Size = System::Drawing::Size(78, 25);
			this->ignorePathDelButton->TabIndex = 0;
			this->ignorePathDelButton->Text = L"Delete";
			this->ignorePathDelButton->UseVisualStyleBackColor = true;
			this->ignorePathDelButton->Click += gcnew System::EventHandler(this, &SettingsForm::ignorePathDelButton_Click);
			// 
			// label6
			// 
			this->label6->AutoSize = true;
			this->label6->Location = System::Drawing::Point(4, 2);
			this->label6->Name = L"label6";
			this->label6->Size = System::Drawing::Size(53, 13);
			this->label6->TabIndex = 10;
			this->label6->Text = L"Ignorable";
			// 
			// ignorePathList
			// 
			this->ignorePathList->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom) 
				| System::Windows::Forms::AnchorStyles::Left) 
				| System::Windows::Forms::AnchorStyles::Right));
			this->ignorePathList->FormattingEnabled = true;
			this->ignorePathList->Location = System::Drawing::Point(4, 18);
			this->ignorePathList->Name = L"ignorePathList";
			this->ignorePathList->SelectionMode = System::Windows::Forms::SelectionMode::MultiExtended;
			this->ignorePathList->Size = System::Drawing::Size(168, 160);
			this->ignorePathList->TabIndex = 9;
			// 
			// panel5
			// 
			this->panel5->Controls->Add(this->tableLayoutPanel4);
			this->panel5->Controls->Add(this->label4);
			this->panel5->Controls->Add(this->impPathList);
			this->panel5->Dock = System::Windows::Forms::DockStyle::Fill;
			this->panel5->Location = System::Drawing::Point(3, 3);
			this->panel5->Name = L"panel5";
			this->panel5->Size = System::Drawing::Size(174, 212);
			this->panel5->TabIndex = 1;
			// 
			// tableLayoutPanel4
			// 
			this->tableLayoutPanel4->Anchor = static_cast<System::Windows::Forms::AnchorStyles>(((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left) 
				| System::Windows::Forms::AnchorStyles::Right));
			this->tableLayoutPanel4->ColumnCount = 2;
			this->tableLayoutPanel4->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Percent, 
				50)));
			this->tableLayoutPanel4->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Percent, 
				50)));
			this->tableLayoutPanel4->Controls->Add(this->impPathButton, 1, 0);
			this->tableLayoutPanel4->Controls->Add(this->impPathDelButton, 0, 0);
			this->tableLayoutPanel4->Location = System::Drawing::Point(3, 178);
			this->tableLayoutPanel4->Name = L"tableLayoutPanel4";
			this->tableLayoutPanel4->RowCount = 1;
			this->tableLayoutPanel4->RowStyles->Add((gcnew System::Windows::Forms::RowStyle(System::Windows::Forms::SizeType::Percent, 100)));
			this->tableLayoutPanel4->RowStyles->Add((gcnew System::Windows::Forms::RowStyle(System::Windows::Forms::SizeType::Absolute, 31)));
			this->tableLayoutPanel4->Size = System::Drawing::Size(168, 31);
			this->tableLayoutPanel4->TabIndex = 8;
			// 
			// impPathButton
			// 
			this->impPathButton->Dock = System::Windows::Forms::DockStyle::Fill;
			this->impPathButton->Location = System::Drawing::Point(87, 3);
			this->impPathButton->Name = L"impPathButton";
			this->impPathButton->Size = System::Drawing::Size(78, 25);
			this->impPathButton->TabIndex = 1;
			this->impPathButton->Text = L"Add";
			this->impPathButton->UseVisualStyleBackColor = true;
			this->impPathButton->Click += gcnew System::EventHandler(this, &SettingsForm::impPathButton_Click);
			// 
			// impPathDelButton
			// 
			this->impPathDelButton->Dock = System::Windows::Forms::DockStyle::Fill;
			this->impPathDelButton->Location = System::Drawing::Point(3, 3);
			this->impPathDelButton->Name = L"impPathDelButton";
			this->impPathDelButton->Size = System::Drawing::Size(78, 25);
			this->impPathDelButton->TabIndex = 0;
			this->impPathDelButton->Text = L"Delete";
			this->impPathDelButton->UseVisualStyleBackColor = true;
			this->impPathDelButton->Click += gcnew System::EventHandler(this, &SettingsForm::impPathDelButton_Click);
			// 
			// label4
			// 
			this->label4->AutoSize = true;
			this->label4->Location = System::Drawing::Point(3, 0);
			this->label4->Name = L"label4";
			this->label4->Size = System::Drawing::Size(55, 13);
			this->label4->TabIndex = 7;
			this->label4->Text = L"Important";
			// 
			// impPathList
			// 
			this->impPathList->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom) 
				| System::Windows::Forms::AnchorStyles::Left) 
				| System::Windows::Forms::AnchorStyles::Right));
			this->impPathList->FormattingEnabled = true;
			this->impPathList->Location = System::Drawing::Point(3, 16);
			this->impPathList->Name = L"impPathList";
			this->impPathList->SelectionMode = System::Windows::Forms::SelectionMode::MultiExtended;
			this->impPathList->Size = System::Drawing::Size(168, 160);
			this->impPathList->TabIndex = 5;
			// 
			// panel6
			// 
			this->panel6->Controls->Add(this->tableLayoutPanel5);
			this->panel6->Controls->Add(this->label5);
			this->panel6->Controls->Add(this->warnPathList);
			this->panel6->Dock = System::Windows::Forms::DockStyle::Fill;
			this->panel6->Location = System::Drawing::Point(183, 3);
			this->panel6->Name = L"panel6";
			this->panel6->Size = System::Drawing::Size(174, 212);
			this->panel6->TabIndex = 0;
			// 
			// tableLayoutPanel5
			// 
			this->tableLayoutPanel5->Anchor = static_cast<System::Windows::Forms::AnchorStyles>(((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left) 
				| System::Windows::Forms::AnchorStyles::Right));
			this->tableLayoutPanel5->ColumnCount = 2;
			this->tableLayoutPanel5->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Percent, 
				50)));
			this->tableLayoutPanel5->ColumnStyles->Add((gcnew System::Windows::Forms::ColumnStyle(System::Windows::Forms::SizeType::Percent, 
				50)));
			this->tableLayoutPanel5->Controls->Add(this->warnPathButton, 1, 0);
			this->tableLayoutPanel5->Controls->Add(this->warnPathDelButton, 0, 0);
			this->tableLayoutPanel5->Location = System::Drawing::Point(3, 180);
			this->tableLayoutPanel5->Name = L"tableLayoutPanel5";
			this->tableLayoutPanel5->RowCount = 1;
			this->tableLayoutPanel5->RowStyles->Add((gcnew System::Windows::Forms::RowStyle(System::Windows::Forms::SizeType::Percent, 100)));
			this->tableLayoutPanel5->RowStyles->Add((gcnew System::Windows::Forms::RowStyle(System::Windows::Forms::SizeType::Absolute, 31)));
			this->tableLayoutPanel5->Size = System::Drawing::Size(168, 31);
			this->tableLayoutPanel5->TabIndex = 11;
			// 
			// warnPathButton
			// 
			this->warnPathButton->Dock = System::Windows::Forms::DockStyle::Fill;
			this->warnPathButton->Location = System::Drawing::Point(87, 3);
			this->warnPathButton->Name = L"warnPathButton";
			this->warnPathButton->Size = System::Drawing::Size(78, 25);
			this->warnPathButton->TabIndex = 1;
			this->warnPathButton->Text = L"Add";
			this->warnPathButton->UseVisualStyleBackColor = true;
			this->warnPathButton->Click += gcnew System::EventHandler(this, &SettingsForm::warnPathButton_Click);
			// 
			// warnPathDelButton
			// 
			this->warnPathDelButton->Dock = System::Windows::Forms::DockStyle::Fill;
			this->warnPathDelButton->Location = System::Drawing::Point(3, 3);
			this->warnPathDelButton->Name = L"warnPathDelButton";
			this->warnPathDelButton->Size = System::Drawing::Size(78, 25);
			this->warnPathDelButton->TabIndex = 0;
			this->warnPathDelButton->Text = L"Delete";
			this->warnPathDelButton->UseVisualStyleBackColor = true;
			this->warnPathDelButton->Click += gcnew System::EventHandler(this, &SettingsForm::warnPathDelButton_Click);
			// 
			// label5
			// 
			this->label5->AutoSize = true;
			this->label5->Location = System::Drawing::Point(3, 2);
			this->label5->Name = L"label5";
			this->label5->Size = System::Drawing::Size(56, 13);
			this->label5->TabIndex = 10;
			this->label5->Text = L"Suspicious";
			// 
			// warnPathList
			// 
			this->warnPathList->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom) 
				| System::Windows::Forms::AnchorStyles::Left) 
				| System::Windows::Forms::AnchorStyles::Right));
			this->warnPathList->FormattingEnabled = true;
			this->warnPathList->Location = System::Drawing::Point(3, 18);
			this->warnPathList->Name = L"warnPathList";
			this->warnPathList->SelectionMode = System::Windows::Forms::SelectionMode::MultiExtended;
			this->warnPathList->Size = System::Drawing::Size(168, 160);
			this->warnPathList->TabIndex = 9;
			// 
			// CancelButton
			// 
			this->CancelButton->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Right));
			this->CancelButton->Location = System::Drawing::Point(491, 527);
			this->CancelButton->Name = L"CancelButton";
			this->CancelButton->Size = System::Drawing::Size(75, 23);
			this->CancelButton->TabIndex = 2;
			this->CancelButton->Text = L"Cancel";
			this->CancelButton->UseVisualStyleBackColor = true;
			this->CancelButton->Click += gcnew System::EventHandler(this, &SettingsForm::CancelButton_Click);
			// 
			// OkButton
			// 
			this->OkButton->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Right));
			this->OkButton->Location = System::Drawing::Point(410, 527);
			this->OkButton->Name = L"OkButton";
			this->OkButton->Size = System::Drawing::Size(75, 23);
			this->OkButton->TabIndex = 3;
			this->OkButton->Text = L"OK";
			this->OkButton->UseVisualStyleBackColor = true;
			this->OkButton->Click += gcnew System::EventHandler(this, &SettingsForm::OkButton_Click);
			// 
			// SettingsForm
			// 
			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
			this->ClientSize = System::Drawing::Size(578, 562);
			this->Controls->Add(this->OkButton);
			this->Controls->Add(this->CancelButton);
			this->Controls->Add(this->tableLayoutPanel1);
			this->Controls->Add(this->checkSumBox);
			this->MaximizeBox = false;
			this->MinimizeBox = false;
			this->Name = L"SettingsForm";
			this->ShowIcon = false;
			this->SizeGripStyle = System::Windows::Forms::SizeGripStyle::Show;
			this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;
			this->Text = L"Settings";
			this->tableLayoutPanel1->ResumeLayout(false);
			this->groupBox1->ResumeLayout(false);
			this->tableLayoutPanel2->ResumeLayout(false);
			this->panel3->ResumeLayout(false);
			this->panel3->PerformLayout();
			this->panel2->ResumeLayout(false);
			this->panel2->PerformLayout();
			this->panel1->ResumeLayout(false);
			this->panel1->PerformLayout();
			this->groupBox2->ResumeLayout(false);
			this->tableLayoutPanel3->ResumeLayout(false);
			this->panel4->ResumeLayout(false);
			this->panel4->PerformLayout();
			this->tableLayoutPanel6->ResumeLayout(false);
			this->panel5->ResumeLayout(false);
			this->panel5->PerformLayout();
			this->tableLayoutPanel4->ResumeLayout(false);
			this->panel6->ResumeLayout(false);
			this->panel6->PerformLayout();
			this->tableLayoutPanel5->ResumeLayout(false);
			this->ResumeLayout(false);
			this->PerformLayout();

		}
#pragma endregion
		private: System::Void OkButton_Click(System::Object^  sender, System::EventArgs^  e)
		{
			_slave->SetCRC(checkSumBox->Checked);

			array<String ^> ^arr = gcnew array<String ^>(impExtList->Items->Count);
			impExtList->Items->CopyTo(arr, 0);
			_slave->SetCriticalExts(arr);

			arr = gcnew array<String ^>(warnExtList->Items->Count);
			warnExtList->Items->CopyTo(arr, 0);
			_slave->SetWarningExts(arr);

			arr = gcnew array<String ^>(ignoreExtList->Items->Count);
			ignoreExtList->Items->CopyTo(arr, 0);
			_slave->SetIgnoreExts(arr);

			arr = gcnew array<String ^>(impPathList->Items->Count);
			impPathList->Items->CopyTo(arr, 0);
			_slave->SetCriticalPaths(arr);

			arr = gcnew array<String ^>(warnPathList->Items->Count);
			warnPathList->Items->CopyTo(arr, 0);
			_slave->SetWarningPaths(arr);

			arr = gcnew array<String ^>(ignorePathList->Items->Count);
			ignorePathList->Items->CopyTo(arr, 0);
			_slave->SetIgnorePaths(arr);

			Close();
		}
		private: System::Void CancelButton_Click(System::Object^  sender, System::EventArgs^  e)
		{
			Close();
		}
		private: System::Void impExtBox_KeyPress(System::Object^  sender, System::Windows::Forms::KeyPressEventArgs^  e)
		{
			if (e->KeyChar == '\r')
			{
				TextBox ^box = dynamic_cast<TextBox ^>(sender);
				impExtList->Items->Add(box->Text);
				box->Text = "";
			}
		}
		private: System::Void impExtButton_Click(System::Object^  sender, System::EventArgs^  e)
		{
			impExtList->Items->Add(impExtBox->Text);
			impExtBox->Text = "";
		}
		private: System::Void impExtDelButton_Click(System::Object^  sender, System::EventArgs^  e)
		{
			while (impExtList->SelectedItems->Count > 0)
				impExtList->Items->Remove(impExtList->SelectedItems[0]);
		}
		private: System::Void warnExtBox_KeyPress(System::Object^  sender, System::Windows::Forms::KeyPressEventArgs^  e)
		{
			if (e->KeyChar == '\r')
			{
				TextBox ^box = dynamic_cast<TextBox ^>(sender);
				warnExtList->Items->Add(box->Text);
				box->Text = "";
			}
		}
		private: System::Void warnExtButton_Click(System::Object^  sender, System::EventArgs^  e)		 
		{
			warnExtList->Items->Add(warnExtBox->Text);
			warnExtBox->Text = "";
		}
		private: System::Void warnExtDelButton_Click(System::Object^  sender, System::EventArgs^  e)
		{
			while (warnExtList->SelectedItems->Count > 0)
				warnExtList->Items->Remove(warnExtList->SelectedItems[0]);
		}
		private: System::Void ignoreExtBox_KeyPress(System::Object^  sender, System::Windows::Forms::KeyPressEventArgs^  e)
		{
			if (e->KeyChar == '\r')
			{
				TextBox ^box = dynamic_cast<TextBox ^>(sender);
				ignoreExtList->Items->Add(box->Text);
				box->Text = "";
			}
		}
		private: System::Void ignoreExtButton_Click(System::Object^  sender, System::EventArgs^  e)
		{
			ignoreExtList->Items->Add(ignoreExtBox->Text);
			ignoreExtBox->Text = "";
		}
		private: System::Void ignoreExtDelButton_Click(System::Object^  sender, System::EventArgs^  e)
		{
			while (ignoreExtList->SelectedItems->Count > 0)
				ignoreExtList->Items->Remove(ignoreExtList->SelectedItems[0]);
		}
		private: System::Void impPathButton_Click(System::Object^  sender, System::EventArgs^  e)
		{
			ExplorerForm ^form = gcnew ExplorerForm(_slave, _ExploreType::Directories, _slave->GetWorkDir());
			if (form->ShowDialog() == ::DialogResult::OK)
				impPathList->Items->AddRange(form->Files);
		}
		private: System::Void impPathDelButton_Click(System::Object^  sender, System::EventArgs^  e)
		{
			while (impPathList->SelectedItems->Count > 0)
				impPathList->Items->Remove(impPathList->SelectedItems[0]);
		}
		private: System::Void warnPathButton_Click(System::Object^  sender, System::EventArgs^  e)
		{
			ExplorerForm ^form = gcnew ExplorerForm(_slave, _ExploreType::Directories, _slave->GetWorkDir());
			if (form->ShowDialog() == ::DialogResult::OK)
				warnPathList->Items->AddRange(form->Files);
		}
		private: System::Void warnPathDelButton_Click(System::Object^  sender, System::EventArgs^  e)
		{
			while (warnPathList->SelectedItems->Count > 0)
				warnPathList->Items->Remove(warnPathList->SelectedItems[0]);
		}
		private: System::Void ignorePathButton_Click(System::Object^  sender, System::EventArgs^  e)
		{
			ExplorerForm ^form = gcnew ExplorerForm(_slave, _ExploreType::Directories, _slave->GetWorkDir());
			if (form->ShowDialog() == ::DialogResult::OK)
				ignorePathList->Items->AddRange(form->Files);
		}
		private: System::Void ignorePathDelButton_Click(System::Object^  sender, System::EventArgs^  e)
		{
			while (ignorePathList->SelectedItems->Count > 0)
				ignorePathList->Items->Remove(ignorePathList->SelectedItems[0]);
		}
};
}
